package org.facyt.vacas.dto;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.facyt.vacas.entities.vacas.Componente;
import org.facyt.vacas.entities.vacas.restricciones.Igual;
import org.facyt.vacas.entities.vacas.restricciones.Restriccion;
import org.facyt.vacas.entities.vacas.restricciones.RestriccionSimple;
import org.facyt.vacas.services.ComponenteService;
import org.facyt.vacas.util.Constantes;

import com.sun.corba.se.pept.transport.ContactInfo;

/**
 * Esta clase mantiene todos los valores que se cargaban en la tabla cal_aportes
 * para un animal en los procesos de animales del programa .net.
 * 
 * @author Usuario
 * 
 */
public class RequerimientosNrcDTO {

	private ComponenteService compService;

	/***** datos de entrada del programa. ***/
	Integer idtipoanimal; // /1 = vaca seca, 2 = ordeñe y 3 =recria (tabla
							// alimento en la base)
	private BigDecimal pv; // 500 ///Peso vivo del animal en Kg: ###.##
	private BigDecimal ltsxdia; // 20 ///Leche - lts/dia: ###.##
	private BigDecimal gb; // 99.99 ///GB%
	private BigDecimal pb; // 99.99 ///PB%
	private BigDecimal del; // 99 ///DEL - Dias en Lactancia
	private BigDecimal camina; // 999 ///Caminata - Distancia camina: metros que
							// camina por día
	private Integer estres; // /Estres x Calor: Opciones: [1-Nada Temp <25° ]
							// [2-Leve Temp 30°] [3-Alto Temp >30°]
	private BigDecimal diasgestacion; // 99
	private BigDecimal cw;
	private BigDecimal adpv;

	/** datos generados **/
	private BigDecimal lc4;
	private BigDecimal lag;
	private BigDecimal a1;
	private BigDecimal enactiv;
	private BigDecimal enmnt;
	private BigDecimal enstress;
	private BigDecimal er;
	private BigDecimal enleche;
	private BigDecimal enl_total;
	private BigDecimal cms;
	private BigDecimal pdescepitelio;
	private BigDecimal porinareq;
	private BigDecimal pm_mnt;
	private BigDecimal pm_lact;
	private BigDecimal pm_total;
	private BigDecimal pdr_req;
	private BigDecimal porce_conce;
	private BigDecimal tdn_1;
	private BigDecimal cms_mnt;
	private BigDecimal tdn_conc;
	private BigDecimal disc_var;
	private BigDecimal desc_var;
	private BigDecimal tdn_act;
	private BigDecimal ed_cons;
	private BigDecimal eddesc_ms;
	private BigDecimal ee_ms;
	private BigDecimal em_ms;
	private BigDecimal enl_ms;
	private BigDecimal em_totalcons;
	private BigDecimal enl_totalcons;
	private BigDecimal mcp_total;
	private BigDecimal pct;
	private BigDecimal kpc;
	private BigDecimal kpf;
	private BigDecimal rdpx_forr;
	private BigDecimal rdpx_forr2;
	private BigDecimal rdpx_conc;
	private BigDecimal rdpx_conc2;
	private BigDecimal rdp;
	private BigDecimal rup;
	
	private BigDecimal ms_aporte;
	
	private BigDecimal pfecalmet;
	private BigDecimal pmendo;
	private BigDecimal pmpreg;
	private BigDecimal CALCIO;
	private BigDecimal fosforo;
	private BigDecimal magnesio;
	private BigDecimal sodio;
	private BigDecimal cloro;
	private BigDecimal potasio;
	private BigDecimal asufre;
	private BigDecimal cobalto;
	private BigDecimal cobre;
	private BigDecimal iodo;
	private BigDecimal hierro;
	private BigDecimal manganeso;
	private BigDecimal zinc;
	private BigDecimal selenio;
	private BigDecimal vit_a;
	private BigDecimal vit_d;
	private BigDecimal vit_e;
	private BigDecimal fdn;

	public Integer getIdtipoanimal() {
		return idtipoanimal;
	}

	public void setIdtipoanimal(Integer idtipoanimal) {
		this.idtipoanimal = idtipoanimal;
	}

	public BigDecimal getPv() {
		return pv;
	}

	public void setPv(BigDecimal pv) {
		this.pv = pv;
	}

	public BigDecimal getLtsxdia() {
		return ltsxdia;
	}

	public void setLtsxdia(BigDecimal ltsxdia) {
		this.ltsxdia = ltsxdia;
	}

	public BigDecimal getGb() {
		return gb;
	}

	public void setGb(BigDecimal gb) {
		this.gb = gb;
	}

	public BigDecimal getPb() {
		return pb;
	}

	public void setPb(BigDecimal pb) {
		this.pb = pb;
	}

	public BigDecimal getDel() {
		return del;
	}

	public void setDel(BigDecimal del) {
		this.del = del;
	}

	public BigDecimal getCamina() {
		return camina;
	}

	public void setCamina(BigDecimal camina) {
		this.camina = camina;
	}

	public Integer getEstres() {
		return estres;
	}

	public void setEstres(Integer estres) {
		this.estres = estres;
	}

	public BigDecimal getDiasgestacion() {
		return diasgestacion;
	}

	public void setDiasgestacion(BigDecimal diasgestacion) {
		this.diasgestacion = diasgestacion;
	}

	public BigDecimal getCw() {
		return cw;
	}

	public void setCw(BigDecimal cw) {
		this.cw = cw;
	}

	public BigDecimal getAdpv() {
		return adpv;
	}

	public void setAdpv(BigDecimal adpv) {
		this.adpv = adpv;
	}

	public BigDecimal getLc4() {
		return lc4;
	}

	public void setLc4(BigDecimal lc4) {
		this.lc4 = lc4;
	}

	public BigDecimal getLag() {
		return lag;
	}

	public void setLag(BigDecimal lag) {
		this.lag = lag;
	}

	public BigDecimal getA1() {
		return a1;
	}

	public void setA1(BigDecimal a1) {
		this.a1 = a1;
	}

	public BigDecimal getEnactiv() {
		return enactiv;
	}

	public void setEnactiv(BigDecimal enactiv) {
		this.enactiv = enactiv;
	}

	public BigDecimal getEnmnt() {
		return enmnt;
	}

	public void setEnmnt(BigDecimal enmnt) {
		this.enmnt = enmnt;
	}

	public BigDecimal getEnstress() {
		return enstress;
	}

	public void setEnstress(BigDecimal enstress) {
		this.enstress = enstress;
	}

	public BigDecimal getEr() {
		return er;
	}

	public void setEr(BigDecimal er) {
		this.er = er;
	}

	public BigDecimal getEnleche() {
		return enleche;
	}

	public void setEnleche(BigDecimal enleche) {
		this.enleche = enleche;
	}

	public BigDecimal getEnl_total() {
		return enl_total;
	}

	public void setEnl_total(BigDecimal enl_total) {
		this.enl_total = enl_total;
	}

	public BigDecimal getCms() {
		return cms;
	}

	public void setCms(BigDecimal cms) {
		this.cms = cms;
	}

	public BigDecimal getPdescepitelio() {
		return pdescepitelio;
	}

	public void setPdescepitelio(BigDecimal pdescepitelio) {
		this.pdescepitelio = pdescepitelio;
	}

	public BigDecimal getPorinareq() {
		return porinareq;
	}

	public void setPorinareq(BigDecimal porinareq) {
		this.porinareq = porinareq;
	}

	public BigDecimal getPm_mnt() {
		return pm_mnt;
	}

	public void setPm_mnt(BigDecimal pm_mnt) {
		this.pm_mnt = pm_mnt;
	}

	public BigDecimal getPm_lact() {
		return pm_lact;
	}

	public void setPm_lact(BigDecimal pm_lact) {
		this.pm_lact = pm_lact;
	}

	public BigDecimal getPm_total() {
		return pm_total;
	}

	public void setPm_total(BigDecimal pm_total) {
		this.pm_total = pm_total;
	}

	public BigDecimal getPdr_req() {
		return pdr_req;
	}

	public void setPdr_req(BigDecimal pdr_req) {
		this.pdr_req = pdr_req;
	}

	public BigDecimal getPorce_conce() {
		return porce_conce;
	}

	public void setPorce_conce(BigDecimal porce_conce) {
		this.porce_conce = porce_conce;
	}

	public BigDecimal getTdn_1() {
		return tdn_1;
	}

	public void setTdn_1(BigDecimal tdn_1) {
		this.tdn_1 = tdn_1;
	}

	public BigDecimal getCms_mnt() {
		return cms_mnt;
	}

	public void setCms_mnt(BigDecimal cms_mnt) {
		this.cms_mnt = cms_mnt;
	}

	public BigDecimal getTdn_conc() {
		return tdn_conc;
	}

	public void setTdn_conc(BigDecimal tdn_conc) {
		this.tdn_conc = tdn_conc;
	}

	public BigDecimal getDisc_var() {
		return disc_var;
	}

	public void setDisc_var(BigDecimal disc_var) {
		this.disc_var = disc_var;
	}

	public BigDecimal getDesc_var() {
		return desc_var;
	}

	public void setDesc_var(BigDecimal desc_var) {
		this.desc_var = desc_var;
	}

	public BigDecimal getTdn_act() {
		return tdn_act;
	}

	public void setTdn_act(BigDecimal tdn_act) {
		this.tdn_act = tdn_act;
	}

	public BigDecimal getEd_cons() {
		return ed_cons;
	}

	public void setEd_cons(BigDecimal ed_cons) {
		this.ed_cons = ed_cons;
	}

	public BigDecimal getEddesc_ms() {
		return eddesc_ms;
	}

	public void setEddesc_ms(BigDecimal eddesc_ms) {
		this.eddesc_ms = eddesc_ms;
	}

	public BigDecimal getEe_ms() {
		return ee_ms;
	}

	public void setEe_ms(BigDecimal ee_ms) {
		this.ee_ms = ee_ms;
	}

	public BigDecimal getEm_ms() {
		return em_ms;
	}

	public void setEm_ms(BigDecimal em_ms) {
		this.em_ms = em_ms;
	}

	public BigDecimal getEnl_ms() {
		return enl_ms;
	}

	public void setEnl_ms(BigDecimal enl_ms) {
		this.enl_ms = enl_ms;
	}

	public BigDecimal getEm_totalcons() {
		return em_totalcons;
	}

	public void setEm_totalcons(BigDecimal em_totalcons) {
		this.em_totalcons = em_totalcons;
	}

	public BigDecimal getEnl_totalcons() {
		return enl_totalcons;
	}

	public void setEnl_totalcons(BigDecimal enl_totalcons) {
		this.enl_totalcons = enl_totalcons;
	}

	public BigDecimal getMcp_total() {
		return mcp_total;
	}

	public void setMcp_total(BigDecimal mcp_total) {
		this.mcp_total = mcp_total;
	}

	public BigDecimal getPct() {
		return pct;
	}

	public void setPct(BigDecimal pct) {
		this.pct = pct;
	}

	public BigDecimal getKpc() {
		return kpc;
	}

	public void setKpc(BigDecimal kpc) {
		this.kpc = kpc;
	}

	public BigDecimal getKpf() {
		return kpf;
	}

	public void setKpf(BigDecimal kpf) {
		this.kpf = kpf;
	}

	public BigDecimal getRdpx_forr() {
		return rdpx_forr;
	}

	public void setRdpx_forr(BigDecimal rdpx_forr) {
		this.rdpx_forr = rdpx_forr;
	}

	public BigDecimal getRdpx_forr2() {
		return rdpx_forr2;
	}

	public void setRdpx_forr2(BigDecimal rdpx_forr2) {
		this.rdpx_forr2 = rdpx_forr2;
	}

	public BigDecimal getRdpx_conc() {
		return rdpx_conc;
	}

	public void setRdpx_conc(BigDecimal rdpx_conc) {
		this.rdpx_conc = rdpx_conc;
	}

	public BigDecimal getRdpx_conc2() {
		return rdpx_conc2;
	}

	public void setRdpx_conc2(BigDecimal rdpx_conc2) {
		this.rdpx_conc2 = rdpx_conc2;
	}

	public BigDecimal getRdp() {
		return rdp;
	}

	public void setRdp(BigDecimal rdp) {
		this.rdp = rdp;
	}

	public BigDecimal getRup() {
		return rup;
	}

	public void setRup(BigDecimal rup) {
		this.rup = rup;
	}

	public BigDecimal getMs_aporte() {
		return ms_aporte;
	}

	public void setMs_aporte(BigDecimal ms_aporte) {
		this.ms_aporte = ms_aporte;
	}

	public BigDecimal getPfecalmet() {
		return pfecalmet;
	}

	public void setPfecalmet(BigDecimal pfecalmet) {
		this.pfecalmet = pfecalmet;
	}

	public BigDecimal getPmendo() {
		return pmendo;
	}

	public void setPmendo(BigDecimal pmendo) {
		this.pmendo = pmendo;
	}

	public BigDecimal getPmpreg() {
		return pmpreg;
	}

	public void setPmpreg(BigDecimal pmpreg) {
		this.pmpreg = pmpreg;
	}

	public BigDecimal getCALCIO() {
		return CALCIO;
	}

	public void setCALCIO(BigDecimal cALCIO) {
		CALCIO = cALCIO;
	}

	public BigDecimal getFosforo() {
		return fosforo;
	}

	public void setFosforo(BigDecimal fosforo) {
		this.fosforo = fosforo;
	}

	public BigDecimal getMagnesio() {
		return magnesio;
	}

	public void setMagnesio(BigDecimal magnesio) {
		this.magnesio = magnesio;
	}

	public BigDecimal getSodio() {
		return sodio;
	}

	public void setSodio(BigDecimal sodio) {
		this.sodio = sodio;
	}

	public BigDecimal getCloro() {
		return cloro;
	}

	public void setCloro(BigDecimal cloro) {
		this.cloro = cloro;
	}

	public BigDecimal getPotasio() {
		return potasio;
	}

	public void setPotasio(BigDecimal potasio) {
		this.potasio = potasio;
	}

	public BigDecimal getAsufre() {
		return asufre;
	}

	public void setAsufre(BigDecimal asufre) {
		this.asufre = asufre;
	}

	public BigDecimal getCobalto() {
		return cobalto;
	}

	public void setCobalto(BigDecimal cobalto) {
		this.cobalto = cobalto;
	}

	public BigDecimal getCobre() {
		return cobre;
	}

	public void setCobre(BigDecimal cobre) {
		this.cobre = cobre;
	}

	public BigDecimal getIodo() {
		return iodo;
	}

	public void setIodo(BigDecimal iodo) {
		this.iodo = iodo;
	}

	public BigDecimal getHierro() {
		return hierro;
	}

	public void setHierro(BigDecimal hierro) {
		this.hierro = hierro;
	}

	public BigDecimal getManganeso() {
		return manganeso;
	}

	public void setManganeso(BigDecimal manganeso) {
		this.manganeso = manganeso;
	}

	public BigDecimal getZinc() {
		return zinc;
	}

	public void setZinc(BigDecimal zinc) {
		this.zinc = zinc;
	}

	public BigDecimal getSelenio() {
		return selenio;
	}

	public void setSelenio(BigDecimal selenio) {
		this.selenio = selenio;
	}

	public BigDecimal getVit_a() {
		return vit_a;
	}

	public void setVit_a(BigDecimal vit_a) {
		this.vit_a = vit_a;
	}

	public BigDecimal getVit_d() {
		return vit_d;
	}

	public void setVit_d(BigDecimal vit_d) {
		this.vit_d = vit_d;
	}

	public BigDecimal getVit_e() {
		return vit_e;
	}

	public void setVit_e(BigDecimal vit_e) {
		this.vit_e = vit_e;
	}

	public BigDecimal getFdn() {
		return fdn;
	}

	public void setFdn(BigDecimal fdn) {
		this.fdn = fdn;
	}

	

	private Restriccion r_lag;
	private Restriccion r_a1;
	private Restriccion r_lc4;
	private Restriccion r_enactiv;
	private Restriccion r_enmnt;
	private Restriccion r_enstress;
	private Restriccion r_er;
	private Restriccion r_enleche;
	private Restriccion r_enl_total;
	private Restriccion r_cms;
	private Restriccion r_pdescepitelio;
	private Restriccion r_porinareq;
	private Restriccion r_pm_mnt;
	private Restriccion r_pm_lact;
	private Restriccion r_pm_total;
	private Restriccion r_pdr_req;
	private Restriccion r_porce_conce;
	private Restriccion r_tdn_1;
	private Restriccion r_cms_mnt;
	private Restriccion r_tdn_conc;
	private Restriccion r_disc_var;
	private Restriccion r_desc_var;
	private Restriccion r_tdn_act;
	private Restriccion r_ed_cons;
	private Restriccion r_eddesc_ms;
	private Restriccion r_ee_ms;
	private Restriccion r_em_ms;
	private Restriccion r_enl_ms;
	private Restriccion r_em_totalcons;
	private Restriccion r_enl_totalcons;
	private Restriccion r_mcp_total;
	private Restriccion r_pct;
	private Restriccion r_kpc;
	private Restriccion r_kpf;
	private Restriccion r_rdpx_forr;
	private Restriccion r_rdpx_forr2;
	private Restriccion r_rdpx_conc;
	private Restriccion r_rdpx_conc2;
	private Restriccion r_rdp;
	private Restriccion r_rup;
	
	//TODO: ver si es necesaria esta restriccion
	//si es la usmatoria de las mp, puede ser.
	private Restriccion r_ms_aporte;
	
	
	private Restriccion r_pfecalmet;
	private Restriccion r_pmendo;
	private Restriccion r_pmpreg;
	private Restriccion r_CALCIO;
	private Restriccion r_fosforo;
	private Restriccion r_magnesio;
	private Restriccion r_sodio;
	private Restriccion r_cloro;
	private Restriccion r_potasio;
	private Restriccion r_asufre;
	private Restriccion r_cobalto;
	private Restriccion r_cobre;
	private Restriccion r_iodo;
	private Restriccion r_hierro;
	private Restriccion r_manganeso;
	private Restriccion r_zinc;
	private Restriccion r_selenio;
	private Restriccion r_vit_a;
	private Restriccion r_vit_d;
	private Restriccion r_vit_e;
	private Restriccion r_fdn;

	public ComponenteService getCompService() {
		return compService;
	}

	public void setCompService(ComponenteService compService) {
		this.compService = compService;
	}

	public Restriccion getR_lc4() {
		Componente c = new Componente();

	    r_lc4 = new Igual();
		r_lc4.setComponente(c);
		((Igual) r_lc4).setCantidad(getLc4());

		return (Igual) r_lc4;
	}
	
	public Restriccion getR_lag() {
		Componente c = new Componente();

		r_lag = new Igual();
		r_lag.setComponente(c);
		((Igual) r_lag).setCantidad(getLag());

		return (Igual) r_lag;
	}

	public Restriccion getR_a1() {
		Componente c = new Componente();

	    r_a1 = new Igual();
		r_a1.setComponente(c);
		((Igual) r_a1).setCantidad(getA1());

		return (Igual) r_a1;
	}

	public Restriccion getR_enactiv() {
		Componente c = new Componente();
		 r_enactiv = new Igual();
		 r_enactiv.setComponente(c);
		 ((Igual) r_enactiv).setCantidad(getLc4());
		return (Igual) r_enactiv;
	}

	public Restriccion getR_enmnt() {
		Componente c = new Componente();
		r_enmnt = new Igual();
		r_enmnt.setComponente(c);
		((RestriccionSimple) r_enmnt).setCantidad(getLc4());
		return (Igual) r_enmnt;
	}

	public Restriccion getR_enstress() {
		Componente c = new Componente();
		r_enstress = new Igual();
		r_enstress.setComponente(c);
		((RestriccionSimple) r_enstress).setCantidad(getEnstress());
		return (Igual) r_enstress;
	}

	public Restriccion getR_er() {
		Componente c = new Componente();
		r_er = new Igual();
		r_er.setComponente(c);
		((RestriccionSimple) r_er).setCantidad(getEr());
		return (Igual) r_er;
	}

	public Restriccion getR_enleche() {
		Componente c = new Componente();
		r_enleche = new Igual();
		r_enleche.setComponente(c);
		((RestriccionSimple) r_enleche).setCantidad(getEnleche());
		return (Igual) r_enleche;
	}
	
	
	public Restriccion getR_enl_total(Componente c) {
		
		
		r_enl_total = new Igual();
		r_enl_total.setComponente(c);
		((RestriccionSimple) r_enl_total).setCantidad(getEnl_total());
		r_enl_total.setearEsF();
		return (Igual) r_enl_total;
	}
	

	public Restriccion getR_cms(Componente c) {
	
		 r_cms = new Igual();
		 r_cms.setComponente(c);
		 ((RestriccionSimple) r_cms).setCantidad(getCms());
		 r_cms.setearEsF();
		return (Igual) r_cms;
	}

	public Restriccion getR_pdescepitelio() {
		Componente c = new Componente();
		r_pdescepitelio = new Igual();
		r_pdescepitelio.setComponente(c);
		((RestriccionSimple) r_pdescepitelio).setCantidad(getPdescepitelio());
		return (Igual) r_pdescepitelio;
	}  

	public Restriccion getR_porinareq() {
		Componente c = new Componente();
		r_porinareq = new Igual();
		r_porinareq.setComponente(c);
		((RestriccionSimple) r_porinareq).setCantidad(getPorinareq());
		return (Igual) r_porinareq;
	}

	public Restriccion getR_pm_mnt() {
		Componente c = new Componente();
		r_pm_mnt = new Igual();
		r_pm_mnt.setComponente(c);
		((RestriccionSimple) r_pm_mnt).setCantidad(getPm_mnt());
		return (Igual) r_pm_mnt;
	}

	public Restriccion getR_pm_lact() {
		Componente c = new Componente();
		r_pm_lact = new Igual();
		r_pm_lact.setComponente(c);
		((RestriccionSimple) r_pm_lact).setCantidad(getPm_lact());
		return (Igual ) r_pm_lact;
	}

	public Restriccion getR_pm_total(Componente c) {
		
		r_pm_total = new Igual();
		r_pm_total.setComponente(c);
		((RestriccionSimple) r_pm_total).setCantidad(getPm_total());
		r_pm_total.setearEsF();
		return (Igual) r_pm_total;
	}

	public Restriccion getR_pdr_req() {
		Componente c = new Componente();
		r_pdr_req = new Igual();
		r_pdr_req.setComponente(c);
		((RestriccionSimple) r_pdr_req).setCantidad(getPdr_req());
		return (Igual) r_pdr_req;
	}

	public Restriccion getR_porce_conce() {
		Componente c = new Componente();
		r_porce_conce = new Igual();
		r_porce_conce.setComponente(c);
		((RestriccionSimple) r_porce_conce).setCantidad(getPorce_conce());
		return (Igual) r_porce_conce;
	}

	public Restriccion getR_tdn_1() {
		Componente c = new Componente();
		r_tdn_1 = new Igual();
		r_tdn_1.setComponente(c);
		((RestriccionSimple) r_tdn_1).setCantidad(getTdn_1());
		return (Igual) r_tdn_1;
	}

	public Restriccion getR_cms_mnt() {
		Componente c = new Componente();
		r_cms_mnt = new Igual();
		r_cms_mnt.setComponente(c);
		((RestriccionSimple) r_cms_mnt).setCantidad(getCms_mnt());
		return (Igual) r_cms_mnt;
	}

	public Restriccion getR_tdn_conc() {
		Componente c = new Componente();
		r_tdn_conc = new Igual();
		r_tdn_conc.setComponente(c);
		((RestriccionSimple) r_tdn_conc).setCantidad(getTdn_conc());
		return (Igual) r_tdn_conc;
	}

	public Restriccion getR_disc_var() {
		Componente c = new Componente();
		r_disc_var = new Igual();
		r_disc_var.setComponente(c);
		((RestriccionSimple) r_disc_var).setCantidad(getDisc_var());
		return (Igual) r_disc_var;
	}

	public Restriccion getR_desc_var() {
		Componente c = new Componente();
		r_desc_var = new Igual();
		r_desc_var.setComponente(c);
		((RestriccionSimple) r_desc_var).setCantidad(getDesc_var());
		return (Igual) r_desc_var;
	}

	public Restriccion getR_tdn_act() {
		Componente c = new Componente();
		r_tdn_act = new Igual();
		r_tdn_act.setComponente(c);
		((RestriccionSimple) r_tdn_act).setCantidad(getTdn_act());
		return (Igual) r_tdn_act;
	}

	public Restriccion getR_ed_cons() {
		Componente c = new Componente();
		r_ed_cons = new Igual();
		r_ed_cons.setComponente(c);
		((RestriccionSimple) r_ed_cons).setCantidad(getEd_cons());
		return (Igual) r_ed_cons;
	}

	public Restriccion getR_eddesc_ms() {
		Componente c = new Componente();
		r_eddesc_ms = new Igual();
		r_eddesc_ms.setComponente(c);
		((RestriccionSimple) r_eddesc_ms).setCantidad(getEddesc_ms());
		return (Igual) r_eddesc_ms;
	}

	public Restriccion getR_ee_ms() {
		Componente c = new Componente();
		r_ee_ms = new Igual();
		r_ee_ms.setComponente(c);
		((RestriccionSimple) r_ee_ms).setCantidad(getEe_ms());
		return (Igual) r_ee_ms;
	}

	public Restriccion getR_em_ms() {
		Componente c = new Componente();
		r_em_ms = new Igual();
		r_em_ms.setComponente(c);
		((RestriccionSimple) r_em_ms).setCantidad(getEm_ms());
		return (Igual) r_em_ms;
	}

	public Restriccion getR_enl_ms() {
		Componente c = new Componente();
		r_enl_ms = new Igual();
		r_enl_ms.setComponente(c);
		((RestriccionSimple) r_enl_ms).setCantidad(getEnl_ms());
		return (Igual) r_enl_ms;
	}

	public Restriccion getR_em_totalcons() {
		Componente c = new Componente();
		r_em_totalcons = new Igual();
		r_em_totalcons.setComponente(c);
		((RestriccionSimple) r_em_totalcons).setCantidad(getEm_totalcons());
		return (Igual) r_em_totalcons;
	}

	public Restriccion getR_enl_totalcons() {
		Componente c = new Componente();
		r_enl_totalcons = new Igual();
		r_enl_totalcons.setComponente(c);
		((RestriccionSimple) r_enl_totalcons).setCantidad(getEnl_totalcons());
		return (Igual) r_enl_totalcons;
	}

	public Restriccion getR_mcp_total() {
		Componente c = new Componente();
		r_mcp_total = new Igual();
		r_mcp_total.setComponente(c);
		((RestriccionSimple) r_mcp_total).setCantidad(getMcp_total());
		return (Igual) r_mcp_total;
	}

	public Restriccion getR_pct() {
		Componente c = new Componente();
		r_pct = new Igual();
		r_pct.setComponente(c);
		((RestriccionSimple) r_pct).setCantidad(getPct());
		return (Igual) r_pct;
	}

	public Restriccion getR_kpc() {
		Componente c = new Componente();
		r_kpc = new Igual();
		r_kpc.setComponente(c);
		((RestriccionSimple) r_kpc).setCantidad(getKpc());
		return (Igual) r_kpc;
	}

	public Restriccion getR_kpf() {
		Componente c = new Componente();
		r_kpf = new Igual();
		r_kpf.setComponente(c);
		((RestriccionSimple) r_kpf).setCantidad(getKpf());
		return (Igual) r_kpf;
	}

	public Restriccion getR_rdpx_forr() {
		Componente c = new Componente();
		r_rdpx_forr = new Igual();
		r_rdpx_forr.setComponente(c);
		((RestriccionSimple) r_rdpx_forr).setCantidad(getRdpx_forr());
		return (Igual) r_rdpx_forr;
	}

	public Restriccion getR_rdpx_forr2() {
		Componente c = new Componente();
		r_rdpx_forr2 = new Igual();
		r_rdpx_forr2.setComponente(c);
		((RestriccionSimple) r_rdpx_forr2).setCantidad(getRdpx_forr2());
		return (Igual) r_rdpx_forr2;
	}

	public Restriccion getR_rdpx_conc() {
		Componente c = new Componente();
		r_rdpx_conc = new Igual();
		r_rdpx_conc.setComponente(c);
		((RestriccionSimple) r_rdpx_conc).setCantidad(getRdpx_conc());
		return (Igual) r_rdpx_conc;
	}

	public Restriccion getR_rdpx_conc2() {
		Componente c = new Componente();
		r_rdpx_conc2 = new Igual();
		r_rdpx_conc2.setComponente(c);
		((RestriccionSimple) r_rdpx_conc2).setCantidad(getRdpx_conc2());
		return (Igual) r_rdpx_conc;
	}

	public Restriccion getR_rdp(Componente c) {
	
		
		r_rdp = new Igual();
		r_rdp.setComponente(c);
		((RestriccionSimple) r_rdp).setCantidad(getRdp());
		r_rdp.setearEsF();
		return (Igual) r_rdp;
	}

	public Restriccion getR_rup() {
		Componente c = new Componente();
		r_rup = new Igual();
		r_rup.setComponente(c);
		((RestriccionSimple) r_rup).setCantidad(getRup());
		return (Igual) r_rup;
	}

	//TODO: ver si esta corresponde
	public Restriccion getR_ms_aporte() {
		Componente c = new Componente();
		r_ms_aporte = new Igual();
		r_ms_aporte.setComponente(c);
		((RestriccionSimple) r_ms_aporte).setCantidad(getMs_aporte());
		return (Igual) r_ms_aporte;
	}

	public Restriccion getR_pfecalmet() {
		Componente c = new Componente();
		r_pfecalmet = new Igual();
		r_pfecalmet.setComponente(c);
		((RestriccionSimple) r_pfecalmet).setCantidad(getPfecalmet());
		return (Igual) r_pfecalmet;
	}

	public Restriccion getR_pmendo() {
		Componente c = new Componente();
		r_pmendo = new Igual();
		r_pmendo.setComponente(c);
		((RestriccionSimple) r_pmendo).setCantidad(getPmendo());
		return (Igual) r_pmendo;
	}

	public Restriccion getR_pmpreg() {
		Componente c = new Componente();
		r_pmpreg = new Igual();
		r_pmpreg.setComponente(c);
		((RestriccionSimple) r_pmpreg).setCantidad(getPmpreg());
		return (Igual) r_pmpreg;
	}

	public Restriccion getR_CALCIO(Componente c) {
		
		r_CALCIO = new Igual();
		r_CALCIO.setComponente(c);
		((RestriccionSimple) r_CALCIO).setCantidad(getCALCIO());
		r_CALCIO.setearEsF();
		return (Igual) r_CALCIO;
	}

	public Restriccion getR_fosforo(Componente c) {
		
		r_fosforo = new Igual();
		r_fosforo.setComponente(c);
		((RestriccionSimple) r_fosforo).setCantidad(getFosforo());
		r_fosforo.setearEsF();
		return (Igual) r_fosforo;
	}

	public Restriccion getR_magnesio(Componente c) {
		
		r_magnesio = new Igual();
		r_magnesio.setComponente(c);
		((RestriccionSimple) r_magnesio).setCantidad(getMagnesio());
		r_magnesio.setearEsF();
		return (Igual) r_magnesio;
	}

	public Restriccion getR_sodio() {
		Componente c = new Componente();
		r_sodio = new Igual();
		r_sodio.setComponente(c);
		((RestriccionSimple) r_sodio).setCantidad(getSodio());
		return (Igual) r_sodio;
	}

	public Restriccion getR_cloro() {
		Componente c = new Componente();
		r_cloro = new Igual();
		r_cloro.setComponente(c);
		((RestriccionSimple) r_cloro).setCantidad(getCloro());
		return (Igual) r_cloro;
	}

	public Restriccion getR_potasio() {
		Componente c = new Componente();
		r_potasio = new Igual();
		r_potasio.setComponente(c);
		((RestriccionSimple) r_potasio).setCantidad(getPotasio());
		return (Igual) r_potasio;
	}

	public Restriccion getR_asufre() {
		Componente c = new Componente();
		r_asufre = new Igual();
		r_asufre.setComponente(c);
		((RestriccionSimple) r_asufre).setCantidad(getAsufre());
		return (Igual) r_asufre;
	}

	public Restriccion getR_cobalto() {
		Componente c = new Componente();
		r_cobalto = new Igual();
		r_cobalto.setComponente(c);
		((RestriccionSimple) r_cobalto).setCantidad(getCobalto());
		return (Igual) r_cobalto;
	}

	public Restriccion getR_cobre() {
		Componente c = new Componente();
		r_cobre = new Igual();
		r_cobre.setComponente(c);
		((RestriccionSimple) r_cobre).setCantidad(getCobre());
		return (Igual) r_cobre;
	}

	public Restriccion getR_iodo() {
		Componente c = new Componente();
		r_iodo = new Igual();
		r_iodo.setComponente(c);
		((RestriccionSimple) r_iodo).setCantidad(getIodo());
		return (Igual) r_iodo;
	}

	public Restriccion getR_hierro() {
		Componente c = new Componente();
		r_hierro = new Igual();
		r_hierro.setComponente(c);
		((RestriccionSimple) r_hierro).setCantidad(getHierro());
		return (Igual) r_hierro;
	}

	public Restriccion getR_manganeso() {
		Componente c = new Componente();
		r_manganeso = new Igual();
		r_manganeso.setComponente(c);
		((RestriccionSimple) r_manganeso).setCantidad(getManganeso());
		return (Igual) r_manganeso;
	}

	public Restriccion getR_zinc() {
		Componente c = new Componente();
		r_zinc = new Igual();
		r_zinc.setComponente(c);
		((RestriccionSimple) r_zinc).setCantidad(getZinc());
		return (Igual) r_zinc;
	}

	public Restriccion getR_selenio() {
		Componente c = new Componente();
		 r_selenio = new Igual();
		 r_selenio.setComponente(c);
		 ((RestriccionSimple) r_selenio).setCantidad(getSelenio());
		return (Igual) r_selenio;
	}

	public Restriccion getR_vit_a() {
		Componente c = new Componente();
		r_vit_a = new Igual();
		r_vit_a.setComponente(c);
		((RestriccionSimple) r_vit_a).setCantidad(getVit_a());
		return (Igual) r_vit_a;
	}

	public Restriccion getR_vit_d() {
		Componente c = new Componente();
		r_vit_d = new Igual();
		r_vit_d.setComponente(c);
		((RestriccionSimple) r_vit_d).setCantidad(getVit_d());
		return (Igual) r_vit_d;
	}

	public Restriccion getR_vit_e() {
		Componente c = new Componente();
		r_vit_e = new Igual();
		r_vit_e.setComponente(c);
		((RestriccionSimple) r_vit_e).setCantidad(getVit_e());
		return (Igual) r_vit_e;
	}

	public Restriccion getR_fdn() {
		Componente c = null;
		try {
			c = compService.getComponenteById(Constantes.componente.FDN);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.err.println("no se eocntro el componenete FDN");
		}
		r_fdn = new Igual();
		r_fdn.setComponente(c);
		((RestriccionSimple) r_fdn).setCantidad(getFdn());
		return (Igual) r_fdn;
	}

/*	public List<Restriccion> toRestricciones() {

		List<Restriccion> listaResultado = new ArrayList<Restriccion>();
		
		//TODO: ver si esta corresponde.
		//materia seca dela racion seleccionada
		//listaResultado.add(getR_ms_aporte());
		//ma. seca nrc: cms
		
		
		listaResultado.add(getR_cms());
		//listaResultado.add(getR_ms_aporte());
		/**
		 * ENL_TotalCons.Text = Format(dr("ENL_TotalCons"), "#,###,##0.00")
           ENL_TotalCons_nrc.Text = Format(dr("ENL_Total")
		 */
		
		//listaResultado.add(getR_enl_totalcons());
/*		listaResultado.add(getR_enl_total());
		
		// 2 = ordeñe
		/**
		 * If Me.Session("animal") = "Vaca en Ordeñe" Then
                Me.pb.Text = Format(dr("MCP_total"), "#,###,##0.00")
            End If
            **/
        
/*		if(idtipoanimal == 2)
			listaResultado.add(getR_pb_ordeñe());
         
		/** 1 = vaca seca,
            If Me.Session("animal") = "Vaca Seca" Then
                Me.pb.Text = Format((dr("RDP") + dr("RUP")) / ms_aporte / 10, "#,###,##0.00")
            End If

		 */
/*		if(idtipoanimal == 1)
			listaResultado.add(getR_pb_seca());
		
		/**Me.pdr_req.Text = Format(dr("Pdr_req"), "#,###,##0.00")
	            Me.pdr_req_nrc.Text = Format(dr("rdp"), "#,###,##0.00")**/

		//55;"CMS"
		///////56;"EM"
		//57;"ENL"
		//58;"PDR"
		//59;"PM"
		//60;"FDN"

		
/*		listaResultado.add(getR_rdp());
		listaResultado.add(getR_pm_total());
		
		listaResultado.add(getR_CALCIO());
		listaResultado.add(getR_fosforo());
		listaResultado.add(getR_magnesio());
		

	/*	listaResultado.add(getR_lc4());
		listaResultado.add(getR_lag());
		listaResultado.add(getR_a1());
		

		listaResultado.add(getR_enactiv());
		
		listaResultado.add(getR_enmnt());
		listaResultado.add(getR_enstress());

		listaResultado.add(getR_er());
		listaResultado.add(getR_enleche());
		listaResultado.add(getR_enl_total());
		
		listaResultado.add(getR_cms());
		
		listaResultado.add(getR_pdescepitelio());
		
		listaResultado.add(getR_porinareq());
		listaResultado.add(getR_pm_mnt());
		listaResultado.add(getR_pm_lact());
		listaResultado.add(getR_pm_total());
		listaResultado.add(getR_pdr_req());
		listaResultado.add(getR_porce_conce());
		listaResultado.add(getR_tdn_1());
		listaResultado.add(getR_cms_mnt());
		listaResultado.add(getR_tdn_conc());
		listaResultado.add(getR_disc_var());
		listaResultado.add(getR_desc_var());
		listaResultado.add(getR_tdn_act());
		listaResultado.add(getR_ed_cons());
		listaResultado.add(getR_eddesc_ms());
		listaResultado.add(getR_ee_ms());
		listaResultado.add(getR_em_ms());
		listaResultado.add(getR_enl_ms());
		listaResultado.add(getR_em_totalcons());
		listaResultado.add(getR_enl_totalcons());
		listaResultado.add(getR_mcp_total());
		listaResultado.add(getR_pct());
		listaResultado.add(getR_kpc());
		listaResultado.add(getR_kpf());
		listaResultado.add(getR_rdpx_forr());
		listaResultado.add(getR_rdpx_forr2());
		listaResultado.add(getR_rdpx_conc());
		listaResultado.add(getR_rdpx_conc2());
		listaResultado.add(getR_rdp());
		listaResultado.add(getR_rup());
		
		
		
		
		listaResultado.add(getR_pfecalmet());
		listaResultado.add(getR_pmendo());
		listaResultado.add(getR_pmpreg());
		listaResultado.add(getR_CALCIO());
		listaResultado.add(getR_fosforo());
		listaResultado.add(getR_magnesio());
		listaResultado.add(getR_sodio());
		listaResultado.add(getR_cloro());
		listaResultado.add(getR_potasio());
		listaResultado.add(getR_asufre());
		listaResultado.add(getR_cobalto());
		listaResultado.add(getR_cobre());
		listaResultado.add(getR_iodo());
		listaResultado.add(getR_hierro());
		listaResultado.add(getR_manganeso());
		listaResultado.add(getR_zinc());
		listaResultado.add(getR_selenio());
		listaResultado.add(getR_vit_a());
		listaResultado.add(getR_vit_d());
		listaResultado.add(getR_vit_e());
		listaResultado.add(getR_fdn());*/

		/// etc...
/*
		for (int i = 0; i < listaResultado.size(); i++) {
			Restriccion r = listaResultado.get(i);
			System.out.println(r.getStringRestriccion());
		}
		
		return listaResultado;
	}*/

	public Restriccion getR_pb_seca() {
		//(dr("RDP") + dr("RUP")) / ms_aporte / 10
		
				Componente c = new Componente();
				//TODO: ver estoooo. que componente seria, o como armo la restroccion
				//falta id
				c.setDescripcion("pb");
				
				r_rdp = new Igual();
				r_rdp.setComponente(c);
				((RestriccionSimple) r_rdp).setCantidad(getRdp().add(getRup()));
				r_rdp.setearEsF();
				return (Igual) r_rdp;
	}

	public Restriccion getR_pb_ordeñe() {
		//"MCP_total"
		
		Componente c = new Componente();
		//TODO: ver estoooo. que componente seria, o como armo la restroccion
		//falta id
		c.setDescripcion("MCP_total");
		
		r_mcp_total = new Igual();
		r_mcp_total.setComponente(c);
		((RestriccionSimple) r_mcp_total).setCantidad(getMcp_total());
		r_mcp_total.setearEsF();
		return (Igual) r_mcp_total;
	}

}
